//第一步:引入Vuex插件
import Vuex from 'vuex';
import { ADDNUM, MINUSNUM,UPDATEMSG} from './mutationType'
//第二步：引入Vue
import Vue from 'vue';
//第三步：使用插件
Vue.use(Vuex);
//Vuex核心概念：state->存储数据的地方
const state = {
    count: 1,
    msg: "张学友"
};
const mutations = {
    //[常量|变量]:ES6新增的语法，给对象添加新增的属性|方法
    [ADDNUM]: (state) => {
        state.count++;
    }
    ,
    [MINUSNUM]: (state) => {
        state.count--;
    },
    [UPDATEMSG]:(state,value)=>{
           state.msg =value;
    }
};

const actions = {
    //addNum类型的action
    addNum: ({ commit, state, dispatch }) => {
        //提交mutation
        commit('ADDNUM');
    },
    minusNum: ({ commit, state, dispatch }) => {
        commit('MINUSNUM');
    }
    ,
    //updateMsg
    updateMsg({commit},value){
          commit('UPDATEMSG',value);
    }
};
//第四步:对外暴露Store类的实例
export default new Vuex.Store({
    state,
    mutations,
    actions
})